/**
 * @param {number} n
 * @return {boolean}
 */
 var isHappy = function(n) {
    // let map={};
    let map=new Map();  // ADT 抽象数据结构
    while(n!=1){
        // map[n]=true;
        map.set(n,true)
        n=getNext(n);
        if(map.has(n)){
            return false;
        }
    }
    return true;
};
const getNext=(n)=>{
    // let str=n.toString();
    n=String(n);
    // let arr=n.split('');
    let sum=0;

    // for i 计算循环，偏机器
    // for of 可读性好

    for(let num of n){
        sum+=Math.pow(num,2);
    }
    return sum;
}  //  是否是快乐数

console.log(isHappy(19));